package map;

import java.util.HashMap;
import java.util.Map;

/**
 * 统计一个字符串中每个字符出现的次数
 */
public class Test {
    public static void main(String[] args) {
         /*
            map:
            key    value
             i       2
             l       1
            思路:
            1:用一个Map保存每个字符出现的次数
              key为出现的字符，value为该字符出现的次数
            2:利用字符串的charAt方法提取line中每一个字符
              2.1:首先获取到该字符后先判断是否在Map中作为key存在
              2.2:如果ke存在，说明该字符之前出现过，根据该字符作为key提取对应的value
                  并对value+1
              2.3:如果key不存在，说明该字符是第一次出现，将其put到map中，对应的value为1
         */
        String line="i love java,thinking in java! hello word!";
        //创建一个Map保存字符出现的次数
        Map<Character,Integer> map=new HashMap<>();
        //遍历字符串的每一个字符
        for (int i=0;i<line.length();i++){
            char a=line.charAt(i);
            //判断该字符是否在Map中
            if(map.containsKey(a)){
                // 如果已存在，获取该字符对应的出现次数并加1
                int count=map.get(a);
                map.put(a,count+1);
            }else {
                // 如果不存在，将该字符加入Map，并设置其出现次数为1
                map.put(a,1);
            }
        }
        //进行遍历打印每个字符及其出现次数
        for (Map.Entry<Character,Integer> b:map.entrySet()){
            System.out.println(b.getKey()+":"+b.getValue());
        }

    }
}
